a82860e745ba163152a7622e7d60d8c83fe58676,enterprise/core-edge/src/test/java/org/neo4j/coreedge/scenarios/CoreServerReplicationIT.java,CoreServerReplicationIT,shouldReplicateTransactionToCoreServersAddedAfterInitialStartUp,#,129
Before Change
cluster.addCoreServerWithServerId( 4, 5 );
coreDB = cluster.awaitLeader( 5000 );
try ( Transaction tx = coreDB.beginTx() )
{
Node node = coreDB.createNode();
node.setProperty( "foobar", "baz_bat" );
tx.success();
}
// then
for ( final CoreGraphDatabase db : cluster.coreServers() )
{
try ( Transaction tx = db.beginTx() )
{
ThrowingSupplier<Long, Exception> nodeCount = () -> count( db.getAllNodes() );
Config config = db.getDependencyResolver().resolveDependency( Config.class );
assertEventually( "node to appear on core server " + config.get( HaSettings.ha_server ), nodeCount,
equalTo( 2L ), 3, SECONDS );
for ( Node node : db.getAllNodes() )
{
assertEquals( "baz_bat", node.getProperty( "foobar" ) );
}
tx.success();
}
}
}
After Change
{
// given
File dbDir = dir.directory();
cluster = Cluster.start( dbDir, 3, 0 );
cluster.addCoreServerWithServerId( 3, 4 );
cluster.coreTx( ( db, tx ) -> {
Node node = db.createNode();
node.setProperty( "foobar", "baz_bat" );
tx.success();
} );
// when
cluster.addCoreServerWithServerId( 4, 5 );
CoreGraphDatabase last = cluster.coreTx( ( db, tx ) -> {
Node node = db.createNode();
node.setProperty( "foobar", "baz_bat" );
tx.success();
} );
// then
assertEquals( 2, countNodes( last ) );
dataMatchesEventually( last, cluster.coreServers() );
}
@Test